// 动物图片管理控制器
const { Animal, AnimalImage } = require('../models');

// 显示动物图片列表
exports.showImages = async (req, res) => {
  try {
    const animalId = req.params.animalId;
    
    // 获取动物信息
    const animal = await Animal.findByPk(animalId);
    if (!animal) {
      req.flash('error', '动物不存在');
      return res.redirect('/admin/animals');
    }
    
    // 获取该动物的所有图片
    const images = await AnimalImage.findAll({
      where: { animalId },
      order: [['createdAt', 'DESC']]
    });
    
    res.render('images/index', {
      title: `${animal.name} - 图片管理`,
      animal,
      images
    });
  } catch (error) {
    console.error('获取图片列表错误:', error);
    res.status(500).json({ message: '服务器错误' });
  }
};

// 添加图片
exports.addImage = async (req, res) => {
  const { animalId, imageUrl, isExclusive } = req.body;
  
  try {
    // 创建图片记录
    await AnimalImage.create({
      animalId,
      imageUrl,
      isExclusive: isExclusive === 'on'
    });
    
    req.flash('success', '图片添加成功');
    res.redirect(`/admin/animals/${animalId}/images`);
  } catch (error) {
    console.error('添加图片错误:', error);
    req.flash('error', '添加图片失败');
    res.redirect(`/admin/animals/${animalId}/images`);
  }
};

// 更新图片状态
exports.updateImage = async (req, res) => {
  const { imageId, isExclusive } = req.body;
  
  try {
    const image = await AnimalImage.findByPk(imageId);
    if (!image) {
      req.flash('error', '图片不存在');
      return res.redirect(`/admin/animals/${req.params.animalId}/images`);
    }
    
    // 更新图片状态
    await image.update({
      isExclusive: isExclusive === 'on'
    });
    
    req.flash('success', '图片更新成功');
    res.redirect(`/admin/animals/${req.params.animalId}/images`);
  } catch (error) {
    console.error('更新图片错误:', error);
    req.flash('error', '更新图片失败');
    res.redirect(`/admin/animals/${req.params.animalId}/images`);
  }
};

// 删除图片
exports.deleteImage = async (req, res) => {
  try {
    const image = await AnimalImage.findByPk(req.params.imageId);
    if (!image) {
      req.flash('error', '图片不存在');
      return res.redirect(`/admin/animals/${req.params.animalId}/images`);
    }
    
    await image.destroy();
    
    req.flash('success', '图片删除成功');
    res.redirect(`/admin/animals/${req.params.animalId}/images`);
  } catch (error) {
    console.error('删除图片错误:', error);
    req.flash('error', '删除图片失败');
    res.redirect(`/admin/animals/${req.params.animalId}/images`);
  }
};